#ifndef __DCLinkList_H_
#define __DCLinkList_H_
#define ElementType int

typedef struct Node
{
    ElementType data;
    struct Node *next;
    struct Node *prev;
}Node;

typedef struct DoubleCircleLinkList
{
    Node *head;
    Node *tail;
    int len;
}DCLinkList;
int InitDCLinkList(DCLinkList *list);
void InsertTail(DCLinkList *list,ElementType element);
void InsertHead(DCLinkList *list,ElementType element);
int FindFirstByElement(DCLinkList *list,ElementType element);
void RemoveByIndex(DCLinkList *list,int index);
void RemoveByElement(DCLinkList *list,ElementType element);
void Travel(DCLinkList *list);
void FreeDCLinkList(DCLinkList *list);












#endif